package br.com.lm.anotacoes;

/**
 * @author Robson Motta
 * 
 * Representa um elemento (Method da @interface) definido na anotacao
 * e o objeto que foi anotado (Classe, Construtor, Campo e Metodo) 
 * 
 * Nota: O ParameterTypes e ParameterAnnotations nao esta sendo usado
 */
public class AnnotationData {

    //Dados classe anotacao
    private String annotationPackage;      //Package da Anotacao
    private String annotationName;         //Interface da Anotacao
    private AnnotationType annotationType; //Tipo de Anotacao (qualificacao)
    private String annotationMember;       //Method da Anotacao
    private Class  annotationReturnType;   //Tipo de retorno da anotacao
    private String annotationValue;        //Valor atribuido/Default da Anotacao 

    //Dados da classe que FOI anotada
    private String annotatedClass;         //Nome da classe anotada
    private String annotatedPackage;       //Pacote da classe anotada    
    private String annotatedElementName;   //Objeto que recebeu a anotacao    
    private Class  annotatedElementType;   //Classe que qualifica o objeto anotado
	    
    public String getAnnotationName() {
	return annotationName;
    }
	
    public void setAnnotationName(String annotationName) {
	this.annotationName = annotationName;
    }
	
    public String getAnnotationPackage() {
	return annotationPackage;
    }
	
    public void setAnnotationPackage(String annotationPackage) {
	this.annotationPackage = annotationPackage;
    }
		
    public String getAnnotationTypeToString() {
	return annotationType.name();
    }
	
    public AnnotationType getAnnotationType() {
	return annotationType;
    }

    public void setAnnotationType(AnnotationType annotationType) {
	this.annotationType = annotationType;
    }
	
    public String getAnnotationMember() {
	return annotationMember;
    }
	
    public void setAnnotationMember(String annotationMember) {
	this.annotationMember = annotationMember;
    }
	
    public String getAnnotationValue() {
	return annotationValue;
    }
	
    public void setAnnotationValue(String annotationValue) {
	this.annotationValue = annotationValue;
    }
    
    public Class getAnnotationReturnType() {
	return annotationReturnType;
    }
	
    public void setAnnotationReturnType(Class annotationReturnType) {
	this.annotationReturnType = annotationReturnType;
    }

    public String getAnnotatedElementName() {
	return annotatedElementName;
    }
	
    public void setAnnotatedElementName(String annotatedElementName) {
	this.annotatedElementName = annotatedElementName;
    }
        
    public Class getAnnotatedElementType() {
	return annotatedElementType;
    }
	
    public void setAnnotatedElementType(Class annotatedElementType) {
	this.annotatedElementType = annotatedElementType;
    }

    public String getAnnotatedClass() {
        return annotatedClass;
    }

    public void setAnnotatedClass(String annotatedClass) {
        this.annotatedClass = annotatedClass;
    }

    public String getAnnotatedPackage() {
        return annotatedPackage;
    }

    public void setAnnotatedPackage(String annotatedPackage) {
        this.annotatedPackage = annotatedPackage;
    }
    
}
